import java.util.Arrays;

public class ShortestUnsortedContinuousSubarray {


    /**
     *给你一个整数数组 nums ，你需要找出一个 连续子数组 ，如果对这个子数组进行升序排序，那么整个数组都会变为升序排序。
     * 请你找出符合题意的 最短 子数组，并输出它的长度。
     * 链接：https://leetcode-cn.com/problems/shortest-unsorted-continuous-subarray
     * @param nums
     * @return
     * 解题思路：最小元素左边的元素 最大元素右边的元素
     */
    public int findUnsortedSubarray(int[] nums) {
        int[] arr = new int[nums.length];
        for (int i=0;i<nums.length;i++){
            arr[i] = nums[i];
        }
        Arrays.sort(arr);
        int left =0;
        for (int i=0;i<nums.length;i++){
            if (nums[i]==arr[i])
                left++;
            else
                break;
        }
        int right = nums.length-1;
        for (int i=nums.length-1;i>=0;i--){
            if (nums[i]==arr[i]){
                right--;
            }
            else
                break;
        }

      return right-left+1;

    }
}
